Information processing device, information processing method, and information storage medium

ABSTRACT

An information processing device acquires an output value in accordance with a state in which an operating device is held, acquires the output value in accordance with a predetermined first holding state of the operating device as a first reference value, acquires the output value in accordance with a predetermined second holding state of the operating device, different from the first holding state, as a second reference value, and calculates a state value indicative of the state in which the operating device is held, which is in accordance with the acquired output value, based on the first reference value and the second reference value.

CROSS REFERENCE TO RELATED APPLICATION

The present application claims priority from Japanese Application No.2006-256324, filed Sep. 21, 2006, the disclosure of which is herebyincorporated by reference herein in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an information processing device, aninformation processing method, and an information storage medium forcarrying out a process in accordance with the state in which anoperating device is held.

2. Description of the Related Art

For example, there is available an information processing device, suchas a domestic game machine or the like, for connection to an operatingdevice (a controller) held by the user and carrying out a process inaccordance with the user's operation relative to the operating device.Some of these operating devices may have a function for outputting asignal indicative of the state in which the operating device is held(holding state) using an acceleration sensor or a gyro sensor, forexample. The information processing device with the operating devicehaving such a function can carry out a process in accordance with theholding state of the operating device when inclined or moved by theuser.

However, it is possible that different values may be obtained, as outputvalues, for the same holding state of the operating device, due toindividual differences of the operating device and/or a built-in sensorthereof. To address this problem, an output value of a sensor or thelike needs to be calibrated for correction in order to know the correctholding state of the operating device based on the output value. In theabove, when carrying out some application programs by the informationprocess device, output values of a sensor in accordance with the holdingstates of the operating device in a required range may need to becorrected to take account of individual differences of the operatingdevice, to thereby improve the accuracy of the corrected state value.

Moreover, since shaking the operating device, or content of an operation(for example, pressing the button on the operating device, or the like)carried out on the operating device, may affect and thereby vary thestate value of the operating device, a noise signal due to the variationneeds to be filtered out. In the above, however, application ofconsistent filtering to all state values may adversely affect the user'ssense of operability in some situations, because required sensitivityfor a user operation may be different from situation to situationdepending on the content of the application program carried out by theinformation processing device.

The present invention has been conceived in view of the above, and oneof the objects thereof is to provide an information processing device,an information processing method, and an information storage medium forimproving accuracy of a state value to be collected, indicative of theholding states of the operating device in a required range.

According to another object of the present invention, there is providedan information processing device, an information processing method, andan information storage medium for improving the user's operability whencarrying out a filtering process relative to the state value indicativeof the holding state of the operating device.

SUMMARY OF THE INVENTION

According to one aspect of the present invention, there is provided aninformation processing device comprising output value acquiring meansfor acquiring an output value in accordance with a state in which anoperating device is held; first reference value acquiring means foracquiring the output value in accordance with a predetermined firstholding state of the operating device as a first reference value; secondreference value acquiring means for acquiring the output value inaccordance with a predetermined second holding state of the operatingdevice, different from the first holding state, as a second referencevalue; and state value calculation means for calculating a state valueindicative of the state in which the operating device is held, which isin accordance with the acquired output value, based on the firstreference value and the second reference value.

According to another aspect of the present invention, there is providedan information processing device having application execution means forexecuting an application program for carrying out a process inaccordance with a state in which an operating device is held, comprisingstate value acquiring means for acquiring state values indicative of thestate in which the operating device is held every predetermined periodof time, as a state value array; parameter set holding means for holdinga plurality of parameter sets including at least one parameter for usein a predetermined filtering process; parameter set selection means forselecting one parameter set from among the plurality of held parametersets, according to an instruction from the application execution means;and filtering means for carrying out the predetermined filtering processrelative to the state value array acquired, using the selected parameterset, wherein the application execution means carries out a process usingthe state value acquired as a result of the filtering process.

According to still another aspect of the present invention, there isprovided an information processing method comprising a step of acquiringan output value in accordance with a state in which an operating deviceis held; a step of acquiring the output value in accordance with apredetermined first holding state of the operating device as a firstreference value; a step of acquiring the output value in accordance witha predetermined second holding state of the operating device, differentfrom the first holding state, as a second reference value; and a step ofcalculating a state value indicative of the state in which the operatingdevice is held, which is in accordance with the acquired output value,based on the first reference value and the second reference value.

According to still another aspect of the present invention, there isprovided a computer readable information storage medium storing aprogram for causing a computer to function as output value acquiringmeans for acquiring an output value in accordance with a state in whichan operating device is held; first reference value acquiring means foracquiring the output value in accordance with a predetermined firstholding state of the operating device as a first reference value; secondreference value acquiring means for acquiring the output value inaccordance with a predetermined second holding state of the operatingdevice, different from the first holding state, as a second referencevalue; and state value calculation means for calculating a state valueindicative of the state in which the operating device is held, which isin accordance with the acquired output value, based on the firstreference value and the second reference value.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is diagram showing a hardware structure of an entertainmentsystem according to an embodiment of the present invention;

FIG. 2 is a diagram showing details of a structure of an MPU;

FIG. 3 is a diagram showing an example of the external appearance of anoperating device;

FIG. 4 is a diagram showing an example of the internal structure of theoperating device;

FIG. 5 is a graph showing an example of a voltage signal output from anacceleration sensor;

FIG. 6 is a functional block diagram showing an example of anentertainment system function according to the present invention;

FIG. 7 is a functional block diagram showing an example function of agyro sensor signal control unit;

FIG. 8 is a flowchart showing an example of a process carried out by agyro sensor signal control unit;

FIG. 9 is a functional block diagram showing an example of a function ofa calibration unit;

FIGS. 10A, 10B and 10C are diagrams explaining examples of predeterminedholding states of the operating device;

FIG. 11 is a diagram explaining an example of reference values stored ina storage unit of the operating device;

FIG. 12 is a functional block diagram showing an example of a functionof a filtering unit; and

FIG. 13 is a diagram explaining one example of a plurality of parametersets held by the entertainment system according to the embodiment.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following, one embodiment of the present invention will bedescribed with reference to the accompanying drawings.

FIG. 1 is a diagram showing a hardware structure of an entertainmentsystem (an information processing device) according to this embodiment.As shown, the entertainment system 10 is a computer system comprising anMPU (Micro Processing Unit) 11, a main memory 20, an image processingunit 24, a monitor 26, an input/output processing unit 28, a soundprocessing unit 30, a speaker 32, an optical disc reading unit 34, ahard disk 38, interfaces (I/F) 40, 44, an operating device 42, a cameraunit 46, and a network interface 48.

FIG. 2 is a diagram showing a structure of the MPU 11. As shown, the MPU11 comprises a main processor 12, sub-processors 14 a, 14 b, 14 c, 14 d,14 e, 14 f, 14 g, 14 h, a bus 16, a memory controller 18, and aninterface (I/F) 22.

The main processor 12 carries out various information processes, andcontrols the sub-processors 14 a to 14 h based on an operating systemstored in the ROM (Read Only Memory) (not shown), a program and dataread from an optical disc 36, such as a DVD (Digital Versatile Disk)-ROMor the like, for example, and/or a program, data, and so forth suppliedvia a communication network.

The sub-processors 14 a to 14 h each carry out various informationprocesses according to an instruction from the main processor 12, andcontrol the respective units of the entertainment system 10 according toa program and data read from the optical disc 36, such as a DVD-ROM orthe like, or supplied via a communication network.

The bus 16 is used for exchanging an address and/or data among therespective units of the entertainment system 10. The main processor 12,the sub-processors 14 a to 14 h, the memory controller 18, and theinterface 22 are mutually connected via the bus 16 for data exchange.

The memory controller 18 accesses the main memory 20 according to aninstruction from the main processor 12 and the sub-processors 14 a to 14h. A program and data read from the optical disc 36 and/or the hard disk38, or those supplied via a communication network, are written into themain memory 20, when necessary. The main memory 20 also functions as aworking memory of the main processor 12 and the sub-processors 14 a to14 h.

The image processing unit 24 and the input/output processing unit 28 areconnected to the interface 22. Data exchange between the main processor12 and the sub-processors 14 a to 14 h and the image processing unit 24or the input/output processing unit 28 is carried out via the interface22.

The image processing unit 24 comprises a GPU (Graphical Processing Unit)and a frame buffer. The GPU renders various screen images in the framebuffer based on the image data supplied from the main processor 12 andthe sub-processors 14 a to 14 h. The screen image rendered in the framebuffer is converted into a video signal at a predetermined timing, andoutput to the monitor 26. It should be noted that the monitor 26 may bea home-use television receiver.

A sound processing unit 30, an optical disc reading unit 34, a hard disk38, interfaces 40, 44, and a network interface 48 are connected to theinput/output processing unit 28. The input/output processing unit 28controls data exchange between the main processor 12 and thesub-processors 14 a to 14 h and the sound processing unit 30, theoptical disc reading unit 34, the hard disk 38, the interface 40, 44,and the network interface 48.

The sound processing unit 30 comprises an SPU (Sound Processing Unit)and a sound buffer. Various sound data, including game music, game soundeffects, messages, and so forth, which are read from the optical disc 36and the hard disk 38, are stored in the sound buffer. The SPU reproducesthe various sound data, and outputs via the speaker 32. It should benoted that the speaker 32 may be a built-in speaker of a home-usetelevision receiver.

According to an instruction from the main processor 12 and thesub-processors 14 a to 14 h, the optical disc reading unit 34 reads aprogram and data from the optical disc 36. The entertainment system 10may be able to read a program and data stored in any computer readableinformation storage medium other than the optical disc 36.

The optical disc 36 is a typical optical disc (a computer readableinformation storage medium), for example, such as a DVD-ROM or the like.The hard disk 38 is a typical hard disk device. The optical disc 36 andthe hard disk 38 store various programs and data in a computer readablemanner.

The interfaces (I/F) 40, 44 establish connection to various peripheraldevices, such as an operating device 42, a camera unit 46, and so forth.The interface may include a USB (Universal Serial Bus) interface, forexample. A radio communication interface, such as a Bluetooth interface,for example, may also be used.

The operating device 42 is a general purpose operation input means andis used by the user to input various operations (for example, a gameoperation). The input/output processing unit 28 scans the states of therespective units of the operating device 42 every predetermined periodof time (for example, 1/60 second), and supplies an operation signalabout the scanning result to the main processor 12 and thesub-processors 14 a to 14 h. The main processor 12 and thesub-processors 14 a to 14 h determine the content of the operation bythe user, based on the operation signal. It should be noted that theentertainment system 10 is adapted to be capable of connection to aplurality of operating devices 42, so that the main processor 12 and thesub-processors 14 a to 14 h can carry out various processes based on theoperation signals supplied from the respective operating devices 42.

The camera unit 46 comprises a publicly known digital camera, forexample, and supplies a captured black/white, grey scale, or color imageevery predetermined period of time (for example, 1/60 second). In thisembodiment, the camera unit 46 inputs a captured image in the form ofJPEG (Joint Photographic Experts Group) image data. The camera unit 46is mounted to the monitor 26, for example, with the lens thereofdirected towards the player, and connected via a cable to the interface44. The network interface 48 is connected to the input/output processingunit 28 and the communication network, relaying data communication bythe entertainment system 10 via the communication network to otherentertainment system 10.

In this embodiment, the operating device 42 has means (for example, amotion sensor or the like, for detecting the posture and movement of theoperating device 42) for outputting a signal indicative of the state inwhich the user holds the operating device 42. Specifically, theoperating device 42 has a direction key, an analogue device, anoperation button, and other keys (represented by “A” to “D” in thedrawing) formed on the front surface thereof, as shown in FIG. 3, andincorporates an acceleration sensor 51 and a gyro sensor 52. Theacceleration sensor 51 and the gyro sensor 52 each output a signal (asensor signal) indicative of the holding state of the operating device42, to be described later. In this embodiment, sensor signals outputfrom the acceleration sensor 51 and the gyro sensor 52 are voltagesignals.

FIG. 4 is a diagram schematically showing an internal circuit structureof the operating device 42. As shown, the operating device 42 comprisesan acceleration sensor 51, a gyro sensor 52, a signal output unit 53,analogue digital (A/D) converters 54 a and 54 b, a reference signalinput section 55, a storage unit 56, and an interface (I/F) 57.

The acceleration sensor 51 incorporates a weight supported by a beam,and detects the amount of deflection of the beam due to the displacementof the weight caused by the acceleration applied thereto, to therebydetermine the acceleration applied to the weight. The accelerationsensor 51 may be a triaxial acceleration sensor for detectingaccelerations in mutually substantially orthogonal triaxial directions.Specifically, as shown in FIG. 3, the acceleration sensor 51 is fixedlydisposed inside the enclosure of the operating device 42, with threereference axes, namely the x, y, and z axes, set thereon mutuallyorthogonal to the acceleration sensor 51. Here, for example, the x axismay correspond to the longitudinal direction (the right-left direction)of the operating device 42; the y axis may correspond to the depthdirection (the front-back direction) of the operating device 42; and thez axis may correspond to the width direction (the directionperpendicular to the paper surface in FIG. 3) of the operating device42. The acceleration sensor 51 detects acceleration relative to each ofthe three reference axes, and outputs three voltage signals inaccordance with the detected accelerations as sensor signals.

FIG. 5 is a graph schematically showing the correspondence between theacceleration relative to any of the three axes, detected by theacceleration sensor 51, and a voltage signal output according to thedetected acceleration. As shown, the acceleration sensor 51 outputs avoltage signal substantially proportional to the acceleration, andoutputs a reference voltage signal Var with no acceleration detected.Based on whether the output voltage signal is larger or smaller than thereference voltage signal Var, which of the positive and negativedirections with respect to each axis the acceleration is caused in canbe determined. In the drawing, 1G represents an accelerationcorresponding to the gravitational acceleration.

The gyro sensor 52 determines an angular velocity of the operatingdevice 42 rotating about the z axis (the gyro reference axis), andoutputs a sensor signal in accordance with the determined angularvelocity. For example, the gyro sensor 52 is a piezoelectricvibration-type gyro sensor which vibrates a piezoelectric element anddetects vibration caused in accordance with the Coriolis force caused bythe rotating piezoelectric element. In the following, a voltage signaloutput with no angular velocity detected by the gyro sensor 52 (that is,the operating device 42 not rotating about the z axis) is referred to asa reference sensor signal Vgr.

The entertainment system 10 can determine in which direction withrespect to the z axis the operating device 42 rotates, based on whethera sensor signal from the gyro sensor 52 is higher or lower than thereference sensor signal Vgr, similar to the case with the accelerationsensor 51. Specifically, a voltage signal higher than the referencesensor signal Vgr is output when the operating device 42 rotates in theRa direction (the clockwise direction on the paper surface) in FIG. 3,while a voltage signal lower than the reference sensor signal Vgr isoutput when the operating device 42 rotates in the Rb direction (thecounter-clockwise direction on the paper surface) in FIG. 3. Theentertainment system 10 samples an output from the gyro sensor 52 everyfixed period of time, and integrates the sampled outputs, to therebydetermine the amount of displacement (a rotational angle) in rotation ofthe operating device 42 relative to the z axis.

The signal output unit 53 outputs a signal (an output signal) inaccordance with the difference between a sensor signal from the gyrosensor 52 and a predetermined reference signal. For example, the signaloutput unit 53 is an amplifying circuit having a circuit structure asshown in FIG. 4, and outputs a voltage signal as the output signal, thevoltage signal obtained by amplifying the potential difference between avoltage signal from the gyro sensor 52 and a predetermined voltagesignal (hereinafter referred to as an amplification reference signalVr). A signal amplified by the signal output unit 53 is input to the A/Dconverter 54 a.

The amplification by the amplification circuit is necessary when asensor signal from the gyro sensor 52 has only low sensitivity relativeto the angular velocity (that is, a voltage signal from the sensorvaries less). Here, if the amplification reference signal Vr differslargely from the reference sensor signal Vgr, the sensor signal from thegyro sensor 52 is resultantly amplified asymmetrically relative to thereference sensor signal Vgr. Consequently, with a large difference, inparticular, the sensor signal may possibly be amplified to an extent inexcess of the expected voltage variation range of the circuit, so thatthe amplification is accordingly not properly carried out. To addressthe above, the amplification reference signal Vr input to the amplifyingcircuit needs to be controlled according to the reference sensor signalVgr. The method for controlling the amplification reference signal Vr inthis embodiment will be described later.

The A/D converters 54 a and 54 b convert an analogue signal, such as avoltage signal, or the like, into a digital output signal in apredetermined range. In this embodiment, the A/D converter 54 a convertsthe amplified voltage signal from the signal output unit 53 into adigital output signal, and outputs to the interface 57. The A/Dconverter 54 b converts three voltage signals in accordance with theaccelerations for the respective reference axes from the accelerationsensor 51 into digital output signals, and outputs to the interface 57.It should be noted here that the digital output signals from the A/Dconverters 54 a and 54 b both have ten-bit resolution, and can take anyvalue in the range between 0 and 1023.

The reference signal input section 55 obtains a predetermined referencedigital signal Dr via the interface 57, and inputs a voltage signal inaccordance with the obtained reference digital signal Dr as anamplification reference signal Vr to the signal output unit 53. Thereference signal input section 55 comprises a PWM (Pulse WidthModulation) signal generator 55 a and a smoothing circuit 55 b in thisembodiment.

The PWM signal generator 55 a obtains a reference digital signal Dr fromthe reference signal control unit 62 b to be described later via theinterface 57, then produces a voltage signal (PWM signal) subjected topulse width modulation using a duty ratio in accordance with theobtained reference digital signal Dr, and outputs the PWM signal to thesmoothing circuit 55 b. It should be noted that the reference digitalsignal Dr input to the PWM signal generator 55 a has eight-bitresolution, and can take any value in the range between 0 and 255.

The smoothing circuit 55 b is a low pass filter having a circuitstructure such as is shown in FIG. 4, for example, and smooths a PWMsignal produced by the PWM signal generator 55 a. Consequently, avoltage signal in accordance with the reference digital signal Dr isproduced, and input to the signal output unit 53 as an amplificationreference signal Vr.

Here, it should be noted that the above described structure of thereference signal input section 55 is only an example, and the referencesignal input section 55 may have an alternative structure for convertingthe reference digital signal Dr into an amplification reference signalVr, using a means, such as a digital/analogue converter, or the like,different from the above-described structure, before outputting to thesignal output unit 53.

The storage unit 56 is an EEPROM (Electronically Erasable andProgrammable Read Only Memory), or the like, and stores data having beenwritten therein when manufacturing the operating device 42. The datastored in the storage unit 56 is read via the interface 57, and used ina process by the MPU 11 of the entertainment system 10. The content ofthe data stored in the storage unit 56 in this embodiment will bedescribed later.

The interface 57 may be a USB interface, a Bluetooth interface, or thelike, and relays data transmission between the interface 40 and theoperating device 42.

In the following, a function realized by the entertainment system 10having the above-described hardware structure by carrying out a processin accordance with the holding state of the operating device 42, usingsensor signals output from the acceleration sensor 51 and gyro sensor52, will be described.

FIG. 6 is a functional block diagram showing example functions realizedby the entertainment system 10 in this case. As shown, the entertainmentsystem 10 comprises, in terms of functions, an output value acquiringunit 61, a gyro sensor signal control unit 62, a calibration unit 63, afiltering unit 64, and an application execution unit 65. These functionsare realized, for example, by the MPU 11 operating according to aprogram stored in the main memory 20. This program may be provided via acommunication network, such as the Internet, or the like, or in the formof being stored in various computer readable information storage media,such as an optical disc, a memory card, or the like.

The output value acquiring unit 61 obtains an output value from theoperating device 42 in accordance with the holding state of theoperating device 42. Specifically, the output value acquiring unit 61obtains a digital output signal from the A/D converter 54 a as an outputvalue Dg, the digital output signal indicating the angular velocity ofthe operating device 42. Further, the output value acquiring unit 61obtains three digital output signals from the A/D converter 54 b asoutput values Da, the digital output signals indicating theaccelerations of the reference axes relative to the operating device 42.That is, the output value acquiring unit 61 obtains output values viathe interface 57 of the operating device 42 and the interface 40 of themain body of the entertainment system 10. In the above, the output valueacquiring unit 61 obtains the output values successively everypredetermined period of time (for example, every input of a verticalsynchronizing signal).

The gyro sensor signal control unit 62 controls the amplificationreference signal Vr to be input to the signal output unit 53, using theoutput value Dg in accordance with an output from the gyro sensor 52among those obtained by the output value acquiring unit 61. The detailedfunction of the gyro sensor signal control unit 62 will be describedlater.

The calibration unit 63 calibrates the output value Da in accordancewith an output from the acceleration sensor 51 among those obtained bythe output value acquiring unit 61, and outputs a resultant digitalvalue as a state value Ds indicative of the holding state of theoperating device 42.

The filtering unit 64 obtains a state value Ds from the calibration unit63, and filters out the influence due to a noise signal in the statevalue Ds. The functions of the calibration unit 63 and the filteringunit 64 will be described later.

The application execution unit 65 executes an application program readfrom the optical disc 36 or the like and stored in the main memory 20,to thereby carry out a game process or the like. Here, the applicationexecution unit 65 carries out a process in accordance with the holdingstate of the operating device 42 based on the data from the gyro sensorsignal control unit 62 and/or the filtering unit 64.

In the following, an example function of the gyro sensor signal controlunit 62 will be described with reference to the functional block diagramin FIG. 7. As shown, the gyro sensor signal control unit 62 comprises,in terms of functions, a reference sensor signal estimation unit 62 a, areference signal control unit 62 b, an output value correction unit 62c, and an initial value setting unit 62 d. These functions are realized,for example, by the MPU 11 executing system software stored in theentertainment system 10.

The reference sensor signal estimation unit 62 a estimates a referencesensor signal Vgr to be output with no angular velocity detected by thegyro sensor 52, based on a signal from the signal output unit 53.Specifically, the reference sensor signal estimation unit 62 acalculates an estimation value (a reference sensor signal estimationvalue De) of an output value Dg that is output according to thereference sensor signal Vgr and the amplification reference signal Vr tobe controlled by the reference signal control unit 62 b to be describedlater, to thereby estimate a reference sensor signal Vgr. Thecalculation of the reference sensor signal estimation value De by thereference sensor signal estimation unit 62 a is made based on an outputvalue array obtained by the output value acquiring unit 61 by obtainingan output value Dg successively every predetermined period of time.

In the following, an example of the above-described calculation of thereference sensor signal estimation value De will be described. That is,the reference sensor signal estimation unit 62 a initially selectsoutput values Dg to be processed from among those forming an outputvalue array, and calculates a representative value (for example, anaverage value) of the selected output values Dg for calculation of thereference sensor signal estimation value De.

More specifically, the reference sensor signal estimation unit 62 acalculates a representative value of the output values Dg belonging toeach of a plurality of evaluation sections Pn obtained by dividing theoutput value array into predetermined time sections, and then estimatesa reference sensor signal Vgr based on the calculated representativevalues. In the above, a predetermined number of sampled output values Dgwhich are successive in the output value array belong to each evaluationsection Pn (n=1, 2, 3 . . . ). The reference sensor signal estimationunit 62 a calculates an evaluation index En indicative of the flatness(the degree of variation) of the output values Dg belonging to eachevaluation section, and, based on the evaluation index En, selects anevaluation section with respect to which a reference sensor signalestimation value De is going to be calculated. Thereafter, a referencesensor signal estimation value De is calculated based on therepresentative value (the average value, or the like) of the outputvalues Dg belonging to each of the selected evaluation sections.

In the following, the above-described process will be specificallydescribed with reference to the flowchart in FIG. 8. This process iscarried out every time the output value acquiring unit 61 obtains apredetermined number of output values Dg belonging to each evaluationsection Pn.

Initially, for an evaluation section Pn to be processed, the referencesensor signal estimation unit 62 a obtains the maximum value (thesection maximum value) Dmaxn of the output values Dg belonging to theevaluation section Pn, the minimum value (the section minimum value)Dminn of the same, and the average value (a section average value) Davgnof the same (S1). Thereafter, the reference sensor signal estimationunit 62 a calculates an evaluation index En, using the followingexpression, based on the section maximum value Dmaxn, the sectionminimum value Dminn, and the section average value Davgn (S2).

En=(Dmaxn−Davgn)²+(Dminn−Davgn)²

In the expression, the evaluation index En is a sum of variance of thesection maximum value Dmaxn and the section minimum value Dminn relativeto the section average value Davgn. Therefore, the evaluation index Enis smaller when the output value Dg for the evaluation section Pn variesless, being closer to constant. In general, the output value Dg isexpected to vary more when the user operates the operating device 42,and vary less when the user does not operate the operating device 42.Therefore, the output value Dg which varies less with a smallerevaluation index En is expected to be close to the value which is outputin accordance with the reference sensor signal Vgr of the gyro sensor52.

However, the output value Dg also becomes constant with a resultantlysmaller evaluation index En when the angular velocity of the rotatingoperating device 42 exceeds the measurable range of the gyro sensor 52and the sensor signal is accordingly saturated at the maximum or minimumvalue. In view of the above, the reference sensor signal estimation unit62 a determines whether or not the output values Dg belonging to theevaluation section Pn are included in the range between thepredetermined upper limit value THmax and the lower limit value THmin(that is, THmin<Dg<THmax) (S3). Should the output value Dg be outsidethe predetermined range of the threshold, that is, the condition at S3is not satisfied, the process for the evaluation section Pn isterminated.

Meanwhile, when the condition at S3 is satisfied, the reference sensorsignal estimation unit 62 a determines whether or not the evaluationindex En is smaller than a predetermined threshold Eth (that is, En<Eth)(S4). When it is determined that the evaluation index En is equal to orlarger than the threshold Eth, that is, the condition at S4 is notsatisfied, the information about that evaluation section Pn is not usedin the estimation of a reference sensor signal estimation value De, andthe process for the evaluation section Pn is terminated.

Meanwhile, when the determination condition is satisfied at S4, thereference sensor signal estimation unit 62 a determines to use theinformation about that evaluation section Pn in the estimation of areference sensor signal Vgr. In this case, the reference sensor signalestimation unit 62 a stores the section average value Davgn, calculatedat step S1, in the main memory 20 as the representative value of theoutput values Dg for the evaluation section Pn (S5). In the above, itshould be noted that it is controlled such that information about thesection average values of a predetermined number of evaluation sectionsare always held in the main memory 20. Therefore, when the predeterminednumber of section average values are already held, the reference sensorsignal estimation unit 62 a writes a new section average value into themain memory 20 at step S5, while deleting the oldest one.

Thereafter, the reference sensor signal estimation unit 62 a calculatesa reference sensor signal estimation value De based on the informationabout the predetermined number of section average values having beenstored in the main memory 20 at step S5. It should be noted here thatalthough a predetermined number of section average values Davgn whichsatisfy the conditions at steps S3 and S4 are obtained in the above, itis possible that information not corresponding to the reference sensorsignal Vgr be included therein. This is because the determinationcondition at steps S3 and S4 may possibly be satisfied even in a caseunder peculiar circumstances other than a case in which no angularvelocity is detected by the gyro sensor 52. That is, the conditions atsteps S3 and S4 may be satisfied when the user slowly moves theoperating device 42 at a constant angular velocity, or the like.

To address the above, the reference sensor signal estimation unit 62 adetermines whether or not the difference W between the maximum andminimum values of the plurality of section average values Davgn havingbeen stored in the main memory 20 at step S5 is smaller than apredetermined threshold Wth (that is, W<Wth) (S6). With the difference Wdetermined to be equal to or larger than the predetermined threshold,the process is terminated. That is, with this arrangement, it ispossible to terminate the calculation of a reference sensor signalestimation value De, should the plurality of section average valuesDavgn vary excessively among one another.

Meanwhile, when the determination condition at S6 is satisfied, thereference digital signal estimation unit 62 a calculates the averagevalue of the predetermined number of section average values Davgn havingbeen stored in the main memory 20 at S5, and determines the calculatedaverage value as a reference sensor signal estimation value De (S7).

As described above, even if the reference sensor signal Vgr varies dueto the influence of temperature, or the like, while the gyro sensor 52is being used, the reference sensor signal estimation unit 62 a cancalculate a reference sensor signal estimation value De in accordancewith the varying reference sensor signal Vgr.

It should be noted that the reference sensor signal estimation unit 62 amay employ a method different from the one described above incalculation of a reference sensor signal estimation value De. Forexample, the reference sensor signal estimation unit 62 a may calculatea representative value (an average value, or the like) of a plurality ofkinds of evaluation section having different lengths of time, andestimate a reference sensor signal based thereon in cycles. In theabove, where the reference sensor signal estimation unit 62 a uses anevaluation section in a relatively short cycle in the calculation of areference sensor signal estimation value De, the reference sensor signalestimation value De can be updated rather shortly, should the referencesensor signal Vgr vary when the operating device 42 is in use. However,when a sensor output is not stabilized, such as, when the userfrequently operates the operating device 42, the frequency of updatingthe reference sensor signal estimation value De drops. In view of theabove, selection of either one of the estimation value obtained in anestimation value calculation process relying on a shorter cycle and thaton a relatively longer cycle enables highly accurate calculation of areference sensor signal estimation value De.

For example, beside the above-described estimation value calculationprocess, the reference sensor signal estimation unit 62 a may use thesection average values Davgn, calculated in the estimation valuecalculation process in a shorter cycle, instead of the output values Dg,and carry out a process similar to the estimation value calculationprocess in a shorter cycle. This constitutes an estimation valuecalculation process using an evaluation section in a longer cycle,corresponding to an estimation value calculation process appliedrelative to an output value array filtered by a low-pass filter. Whenthe reference sensor signal estimation value De is updated in anestimation value calculation process relying on a shorter cycle, theresult of the estimation value calculation process relying on a longercycle is controlled to be reset (that is, the information about theaverage values of evaluation sections in a longer cycle accumulated thusfar is deleted). Meanwhile, when update of a reference sensor signalestimation value De in an estimation value calculation process relyingon a shorter cycle is not applied for a predetermined period of time, areference sensor signal estimation value De obtained in an estimationvalue calculation process relying on a longer cycle is output to thereference signal control unit 62 b. With the above, the reference sensorsignal estimation value De is updated using a process relying on ashorter cycle, which closely follows the reference sensor signal Vgr,when possible, and a process relying on a longer cycle when notpossible.

It should be noted that the application execution unit 65 may instructthe user at a predetermined time to hold the operating device 42 stillso that the reference sensor signal estimation unit 62 a can calculate areference sensor signal estimation value De. With the user holding theoperating device 42 still in response to the instruction, the referencesensor signal estimation unit 62 a can quickly and accurately calculatea reference sensor signal estimation value De.

Also, in the above-described example, the reference sensor signalestimation unit 62 a estimates a reference sensor signal Vgr basedsolely on the output values Dg, which is in accordance with an outputfrom the gyro sensor 52 and obtained by the output value acquiring unit61, though any other information may be used in the estimation. Forexample, the reference sensor signal estimation unit 62 a may obtaininformation about a user operation carried out relative to the operatingdevice 42, including an output from a sensor, such as the accelerationsensor 51, or the like, other than the gyro sensor 52, informationshowing the state of a button or the like on the operating device 42,and estimate a reference sensor signal Vgr based on the informationabout the user operation relative to the operating device 42.

Specifically, the reference sensor signal estimation unit 62 a selectsoutput values Dg for use in the calculation of a reference sensor signalestimation value De based on the information about the user operationcarried out by the operating device 42 and the evaluation index En. Thismakes it possible to select output values of the gyro sensor 52 for usein the estimation of the reference sensor signal Vgr according to thestate of the operating device 42, so that the estimation accuracy can beimproved. Further, the reference sensor signal estimation unit 62 a mayestimate the reference sensor signal Vgr based on a period of time inwhich the operating device 42 is used and information about the contentof the process carried out by the application execution unit 65.

The reference signal control unit 62 b controls so as to change theamplification reference signal Vr to be input to the signal output unit53, according to a reference sensor signal Vgr estimated by thereference sensor signal estimation unit 62 a. Specifically, thereference signal control unit 62 b determines the value of a referencedigital signal Dr in accordance with the reference sensor signalestimation value De, calculated by the reference sensor signalestimation unit 62 a, and inputs the reference digital signal Dr to thereference signal input section 55 via the interface 57 of the operatingdevice 42, to thereby control the amplification reference signal Vr.

Specifically, the reference signal control unit 62 b changes thereference digital signal Dr in accordance with the reference sensorsignal estimation value De such that the output value Dg obtained inaccordance with the reference sensor signal Vgr coincides with thepredetermined target value Dc. That is, the reference signal controlunit 62 b changes the reference digital signal Dr being currentlyoutput, according to the difference between the reference sensor signalestimation value De and the predetermined target value Dc. With theabove, the output value Dg to be output under control by the referencesignal control unit 62 b becomes substantially coincident with thepredetermined target value Dc when a reference sensor signal Vgr isoutput from the gyro sensor 52. Consequently, the output value Dg takesa value indicative of the variation of the angular velocity, with thetarget value Dc as the center of the amplitude.

In this case, the target value Dc is set, for example, at the median(here 512) of the range of values which can be taken by the digitaloutput signal from the A/D converter 54 a. Alternatively, the targetvalue Dc may be a value determined in response to an instruction fromthe application execution unit 65.

Here, when the resolution of the reference digital signal Dr and theaccuracy of the amplification reference signal Vr accordingly output bythe reference signal input section 55 are sufficiently high, it ispossible to make fine adjustment such that an output value Dg to beoutput in accordance with the reference sensor signal Vgr becomesaccurately coincident with the target value Dc. However, there may be acase in which only roughly accurate control is possible with anamplification reference signal Vr due to circuit structuralconstrictions or the like, and in such a case combination of theadjustment of the reference digital signal Dr and correction of theoutput value Dg, using the method described below, makes possible fineadjustment of the output value Dg in accordance with the referencesensor signal estimation value De.

For example, in this embodiment, suppose that the signal output unit 53is an amplifying circuit for amplifying the potential difference betweentwo voltage signals input by a factor of −A. In this case, the followingrelational expression is held between a sensor signal Vg from the gyrosensor 52 and an output signal Vo from the signal output unit 53.

Vo−Vr=−A(Vg−Vr)

This relational expression is modified as follows:

Vo=−A·Vg+(A+1)Vr

With the above relational expression, the change amount of the outputsignal Vo is (A+1) times the change amount of the amplificationreference signal Vr.

Further, as described above, in this embodiment, the resolution of thedigital output signal (that is, an output value Dg), output from the A/Dconverter 54 a in accordance with the output signal Vo, is ten bits,while the resolution of the reference digital signal Dr, input to thereference signal input section 55, is eight bits. The amplificationreference signal Vr is controlled according to the reference digitalsignal Dr. The ratio between the resolution of the output value Dg andthat of the reference digital signal Dr is 4:1 (two bits ×2).

With the above, in this embodiment, the change amount of the outputvalue Dg is 4(A+1) times the change amount of the reference digitalsignal Dr. That is, the following relational expression is held betweenthe change amount ΔDr of the reference digital signal Dr and the changeamount ΔDg of the output value Dg in accordance with the change amountΔDr.

ΔDg=4(A+1)ΔDr

Here, the rate of the change amount of the output value Dg relative tothat of the reference digital signal Dr is defined as a variation rate Rin the following. As known from the relational expression, in thisembodiment, every time the reference digital signal Dr is changed byone, the output value Dg is changed by R (=4(A+1)). However, “A” is notalways an integer value, and when “A” is not an integer value, thechange amount ΔDg of the output value Dg takes a value obtained byconverting the value obtained using the above expression into an integervalue by counting fractions over ½ as one and disregarding theremainder, or the like, for example.

As described above, in this embodiment, it is impossible to control theoutput value Dg with sufficient accuracy by only changing the referencedigital signal Dr. Therefore, for compensation of the adjustment bychanging the reference digital signal Dr, the gyro sensor signal controlunit 62 corrects the output value Dg. Specifically, the reference signalcontrol unit 62 b determines the change amount ΔDr relative to thecurrent value of the reference digital signal Dr based on the variationrate R, and outputs a reference digital signal Dr having been modifiedaccording to the determined change amount to the reference signal inputsection 55. In addition, the reference signal control unit 62 bcalculates a correction value ΔDg based on the variation rate R, forcorrecting the difference between an output value Dg assumed to beoutput relative to the reference sensor signal Vgr in accordance with anew reference digital signal Dr and an output value Dg (a target valueDc, here) to be output relative to the reference sensor signal Vgrestimated by the reference sensor signal estimation unit 62 a.

For example, the reference signal control unit 62 b calculates thechange amount ΔDr of the reference digital signal Dr and the correctionvalue ΔDg so as to satisfy the follow relational expression.

Dc−De=R·ΔDr+ΔDg

wherein ΔDr is an integer value which enables ΔDg having an absolutevalue smaller than R. For example, a quotient obtained by dividing Dc-Deby R is ΔDr with the remainder being ΔDg. Then, the reference signalcontrol unit 62 b outputs, as a new reference digital signal Dr, a valueobtained by adding ΔDr to the reference digital signal Dr beingcurrently output, and updates the correction value ΔDg stored in themain memory 20 to the calculated value. In this case, the output valueDg assumed to be output relative to the reference sensor signal Vgr inaccordance with the new reference digital signal Dr input is De+R·ΔDr.It should be noted that, when the absolute value of Dc−De is smallerthan R, the reference signal control unit 62 b updates the correctionvalue ΔDg, without changing the reference digital signal Dr.

The output value correction unit 62 c corrects the output value Dgobtained by the output value acquiring unit 61, based on the correctionvalue ΔDg, calculated by the reference signal control unit 62 b andstored in the main memory 20. That is, after the reference signalcontrol unit 62 b changes the reference digital signal Dr, thecorrection value ΔDg is added to an output value Dg which is output inaccordance with the change, to thereby correct the output value Dg. Thismakes it possible to correct the output value Dg such that an outputvalue Dg, obtained relative to the reference sensor signal Vgr, becomessubstantially coincident with the target value Dc.

In this embodiment, the corrected output value is output to theapplication execution unit 65. The application execution unit 65integrates the difference between the corrected output value and thetarget value Dc, to thereby obtain information about a rotational angleof the operating device 42.

The initial value setting unit 62 d obtains the initial value of thereference digital signal Dr, and outputs the obtained initial value tothe reference signal control unit 62 b. In the above, the initial valuesetting unit 62 d reads data from the storage unit 56 of the operatingdevice 42 when the power of the entertainment system 10 is turned on, orwhen the operating device 42 is connected to the entertainment system10, to thereby obtain the initial value of the reference digital signalDr. With the initial value obtained by the initial value setting unit 62d, the reference signal control unit 62 b determines a reference digitalsignal Dr in accordance with the initial value, and outputs thedetermined reference digital signal Dr to the reference signal inputsection 55.

Besides the initial value of the reference digital signal Dr, theinitial value setting unit 62 d obtains the initial value of thecorrection value ΔDg to be used by the output value correction unit 62 cin correction of the output value Dg, and stores in the main memory 20.

In this embodiment, the reference digital signal Dr is controlled inaccordance with the changing output value Dg as time passes.Accordingly, it may take time, in the case of the initial value being apredetermined value, such as 0, or the like, before the referencedigital signal Dr is adjusted to be the value in accordance with thereference sensor signal Vgr. To address the above, in this embodiment,the reference digital signal Dr is controlled in accordance with theinitial value of the reference digital signal Dr, stored in advance inthe storage unit 56 of the operating device 42.

In this case, the initial value of the reference digital signal Dr,stored in the storage unit 56, is determined such that a digital outputsignal from the A/D converter 42 a becomes closest to the target valueDc when the operating device 42 remains still. This is achieved throughmeasurement of a digital output signal from the A/D converter 42 a whileholding the operating device 42 still and changing the reference digitalsignal Dr, in the process of manufacturing the operating device 42 orthe like. Also, the difference between the digital output signal to beoutput relative to the initial value of the reference digital signal Drin this case and the target value Dc is determined as the initial valueof the correction value ΔDg.

Through the process described above, the gyro sensor signal control unit62 controls the reference signal to be input to the signal output unit53, according to the reference sensor signal Vgr estimated based on anoutput signal from the signal output unit 53, whereby a sensor signalfrom the gyro sensor 52 can be converted into an output signal havingthe amplitude center fixed at a predetermined value (target value Dc,here) which is not subjected to the individual difference of a sensor.Consequently, the application execution unit 65 can obtain accurateinformation about a rotational angle of the operating device 42 relativeto the gyro reference axis by means of integration of the obtainedoutput signal.

In the following, an example function of the calibration unit 63 will bedescribed based on the functional block diagram in FIG. 9. As shown, thecalibration unit 63 comprises, in terms of functions, a reference valueacquiring unit 63 a and a state value calculation unit 63 b. Thesefunctions are realized, for example, by the MPU 11 executing systemsoftware stored in the entertainment system 10.

The reference value acquiring unit 63 a obtains an output value inaccordance with a predetermined holding state (a reference state) of theoperating device 42 as a reference value. The reference value isobtained, for example, by measuring a sensor output while holding theoperating device 42 in the reference state during manufacture thereof,and stored in the storage unit 56. Specifically, the reference valueacquiring unit 63 a reads data from the storage unit 56, for example,when the power of the entertainment system 10 is turned on, or when theoperating device 42 is connected to the entertainment system 10, tothereby obtain the reference value. The read reference value is storedin the main memory 20.

Here, a specific example of a reference value to be stored in thestorage unit 56 will be described. The reference value to be stored inthe storage unit 56 contains an output value (a first reference value)in accordance with a predetermined first holding state (a firstreference state) of the operating device 42 and an output value (asecond reference value) in accordance with a second predeterminedholding state (a second reference state) which is different from thefirst reference state. The first and second reference states aredetermined based on the range of holding states of the operating device42 that particularly requires accuracy of an output value.

The storage unit 56 may additionally contain an output value (a thirdreference value) in accordance with a predetermined third holding state(a third reference state). In this case, for example, the thirdreference state is a holding state between the first and secondreference states, and indicates a standard holding state of theoperating device 42, such as a state with no acceleration detected bythe acceleration sensor 51. It should be noted that, when the standardholding state of the operating device 42 coincides with either the firstor second reference state, the storage unit 56 does not necessarily holdthe third reference value corresponding to the third reference state.

These reference states are determined in advance with respect to each ofthe plurality of kinds of output value to be calibrated by thecalibration unit 63. In this embodiment, three kinds of output value inaccordance with the accelerations of the three reference axes, to bemeasured by the acceleration sensor 51, are to be calibrated. Therefore,a plurality of reference states are defined with respect to each of thethree reference axes. An output value in accordance with the referencestate of each reference axis is measured, and stored as a referencevalue in the storage unit 56.

Specifically, in connection with an output value in accordance with theacceleration of each of the x and y axes, a state in which the positivedirection of each axis coincides with the vertical direction (thegravity direction) is referred to as a first reference state, with afirst reference value being an output value in accordance with thegravitational acceleration of +1G. A state in which the negativedirection of each axis coincides with the vertical direction is referredto as a second reference state, with a second reference value being anoutput value in accordance with the gravitational acceleration of −1G.Further, a state in which each axis is perpendicular to the verticaldirection is referred to as a third reference state, with a thirdreference value being an output value in accordance with thegravitational acceleration of 0G. FIGS. 10A, 10B, and 10C explainexamples of reference states for an output value in accordance with theacceleration of the x axis. FIG. 10A shows the first reference state,FIG. 10B shows the second reference state, and FIG. 10C shows the thirdreference state. All three drawings show the operating device 42 shownin FIG. 3, viewed in the positive direction of the y axis. The stateshown in FIG. 10C is the third reference state for the y axis.

As to an output value in accordance with the acceleration of the z axis,a state in which the z axis is perpendicular to the vertical directionis referred to as a first reference state, with the first referencevalue being an output value in accordance with the gravitationalacceleration of 0G. A state in which the negative direction of the zaxis coincides with the vertical direction is referred to as a secondreference state, with the second reference value being an output valuein accordance with the gravitational acceleration of −1G.

FIG. 11 explains an example of reference values stored in the storageunit 56 of the operating device 42 in the above-described example. Inthis example, no third reference state is available for the z axisbecause it is considered that the user rarely inclines the operatingdevice 42 upside down, and therefore, accurate measurement in the rangebetween −1G and +1G for the x and y axes and the range between −1G and0G for the z axis is required when the acceleration sensor 51 is used todetect the degree of inclination of the operating device 42.

The state value calculation unit 63 b calculates, and outputs, a statevalue Ds indicative of the holding state of the operating device 42 inaccordance with an output value Da, based on the output value Da,acquired by the output value acquiring unit 61, and the first and secondreference values, acquired by the reference value acquiring unit 63 aand stored in the main memory 20. That is, the state value calculationunit 63 b calculates a state value Ds every time the output valueacquiring unit 61 obtains an output value Da, and outputs the statevalue Ds, or the output value Da subjected to correction. It should benoted that the state value calculation unit 63 b may calculate a statevalue Ds, additionally using the third reference value.

Here, the calculation of a state value Ds by the state value calculationunit 63 b (a state value calculation process) will be specificallydescribed. Initially, calculation of a state value Ds by correcting anoutput value Da in accordance with the acceleration of the x axis willbe described. In this case, the state value calculation unit 63 bcarries out linear interpolation using the calculation expression belowand the first and second reference values, to thereby calculate a statevalue Ds.

$\begin{matrix}{{Ds} = {{\frac{C\; 1\; x}{{R\; 1\; x} - {R\; 2\; x}}\left( {{Da} - {R\; 3\; x}} \right)} + {C\; 2\; x}}} & (1)\end{matrix}$

wherein R1x, R2x, and R3x respectively represent the first, second, andthird reference values, and C1x and C2x respectively representpredetermined correction parameters.

With the operating device 42 in the third reference state (the statecorresponding to the gravitational acceleration 0G), the output value Dais assumed to take a third reference value R3x. In this case, the statevalue Ds calculated in the state value calculation process takes a fixedvalue C2x. Therefore, even when the third reference value R3x varies dueto the individual differences of the sensors or the like, the statevalue calculation unit 63 b always outputs the value C2x as a statevalue indicative of the third reference state of the operating device42. The value C2x is set at the median (512, here) of the range ofvalues which can be taken by a digital signal output from the A/Dconverter 54 b, for example.

The state value Ds, calculated in the state value calculation process,takes a value proportional to the output value Da, with the coefficientC1x/(R1x−R2x) as a proportional constant. As a result, the differencebetween the state value indicative of the first reference state and thestate value indicative of the second reference state takes apredetermined value C1x, irrespective of the individual difference ofthe sensor or the like. Therefore, even if the output values Da shouldvary differently between the first and second reference states, relativeto the user operation by the same amount due to the individualdifferences of the sensors or the like, the state value Ds aftercorrection varies constantly relative to the user operation by the sameamount. That is, the change amount of the state value Ds relative tothat of the gravitational acceleration remains constant. With the above,the state value Ds correctively indicates the holding state of theoperating device 42 in the range (the focus range) between the first andsecond reference states, with the state value C2x indicative of thethird reference state, described above, as a reference. Consequently,the accuracy of the state value Ds can be improved.

It should be noted that correction of the output value Da in accordancewith the acceleration of the y axis can be achieved using a calculationexpression similar to that for the x axis, in which C1y and C2y may bevalues equivalent to C1x and C2x, respectively.

In the following, correction of an output value Da in accordance withthe acceleration of the z axis will be described. In this case, thestate value calculation unit 63 b calculates the state value Ds, usingthe following calculation expression.

$\begin{matrix}{{Ds} = {{\frac{C\; 1z}{{R\; 1z} - {R\; 2z}}\left( {{Da} - {R\; 1z}} \right)} + {C\; 2z}}} & (2)\end{matrix}$

Similar to the expression (1), R1z and R2z indicate the first and secondreference values, respectively, and C1z and C2z represent predeterminedcorrection parameters, respectively. According to the expression (2),the first reference value R1z and the second reference value R2z arealways corrected to be the fixed values C2z and (C2z−C1z), respectively.

As for the z axis, as described above, the first reference statecorresponds to the gravitational acceleration 0G, while the secondreference state corresponds to the gravitational acceleration −1G. Therange between the first and second reference states corresponds to ahalf of the focus range in the case of the x and y axes. Therefore, with

${C\; 1z} = {{\frac{1}{2}C\; 1x} = {\frac{1}{2}C\; 1y}}$

it is possible to control such that, for any reference axis, the changeamount of the state value Ds becomes constant relative to the samechange amount of the gravitational acceleration. Further, in theexpression (2), a first reference value is used instead of the thirdreference value in the expression (1), and the first reference state inconnection with the z axis corresponds to the gravitational acceleration0G, similar to the third reference states in connection with the x and yaxes. Therefore, by defining C2z=C2x=C2y, it is possible to control suchthat the state values Ds in connection with the respective referenceaxes take the same value with respect to the gravitational acceleration0G.

When the state value Ds, calculated using the above-describedcalculation expression, is not included in the range of the values whichcan be taken by the digital output signal output by the A/D converter 54b, the state value calculation unit 63 b may perform correction suchthat the state value Ds is included in the range. That is, the statevalue calculation unit 63 b corrects such that the calculated statevalue is included in the range defined by the predetermined upper andlower limits. Specifically, in this embodiment, 0 is output as a statevalue Ds when the value calculated using the calculation expression issmaller than the lower limit value 0, and 1023 is output when the valueexceeds the upper limit value 1023. With the above, it is possible tocorrect the entire output value Da so as to be included in the range ofvalues which can be taken by the original output value Da, and output asa state value Ds, while ensuring the accuracy of the state value Ds inthe focus range. With the above, when an application program is designedbased on the assumption, for example, that a digital value havingten-bit resolution is obtained as an output value in accordance with theacceleration, the application execution unit 65 executes the applicationprogram intact, to thereby realize a process in accordance with thestate value Ds subjected to calibration by the calibration unit 63.

With the above-described function, the calibration unit 63 can calculatea state value Ds, based on the output value Da, obtained by the outputvalue acquiring unit 61, and the first and second reference values,obtained in advance in accordance with the first and second referencestates, respectively, to thereby perform correction to absorb individualdifferences between the operating device 42, while ensuring accuracy ofthe state value Ds in the required range.

In the following, a functional example of the filtering unit 64 will bedescribed based on the functional block diagram in FIG. 12. As shown,the filtering unit 64 comprises, in terms of functions, a parameter setholding unit 64 a, a parameter set selection unit 64 b, and a filteringexecution unit 64 c. The function of the parameter set holding unit 64 acan be realized by the main memory 20, or the like. The functions of theparameter set selection unit 64 b and the filtering execution unit 64 care realized by the MPU 11 executing a library program, provided in theform of being stored in the optical disc 36 together with theapplication program, or the like.

The parameter set holding unit 64 a holds a plurality of parameter sets,each containing at least one parameter for use in predeterminedfiltering. Specifically, the parameter set holding unit 64 a holds atable showing, in association with each other, a parameter set numberand a parameter set which includes a predetermined number of parameters.FIG. 13 is a diagram explaining an example of parameter sets stored inthe table.

According to an instruction from the application execution unit 65, theparameter set selection unit 64 b selects one parameter set from amongthose held in the parameter set holding unit 64 a. For example, theparameter set selection unit 64 b may select a parameter set associatedwith the parameter set number notified by the application execution unit65.

The filtering execution unit 64 c filters the state value Ds, using theparameter set selected by the parameter set selection unit 64 b.Specifically, the filtering execution unit 64 c obtains state values Ds,output by the state value calculation unit 63 b every predeterminedperiod of time, as a state value array, and filters the state valuearray.

The filtering by the filtering execution unit 64 c is a low-passfiltering process for filtering out a high frequency component in thestate value array, for example. In the following, a specific example oflow-pass filtering by the filtering execution unit 64 c will bedescribed below.

In this case, each parameter set held in the parameter set holding unit64 a contains a parameter which is a filtering coefficient. Suppose thatone parameter set comprises parameters P1, P2, P3, P4, and P5. In thiscase, the low-pass filtering is realized using the following calculationexpression.

$\begin{matrix}\left\{ \begin{matrix}{{u\lbrack n\rbrack} = {{P\; {1 \cdot {u\left\lbrack {n - 1} \right\rbrack}}} + {P\; {2 \cdot {u\left\lbrack {n - 2} \right\rbrack}}} + {{Ds}\lbrack n\rbrack}}} \\{{{Ds}^{\prime}\lbrack n\rbrack} = {{P\; {3 \cdot {u\lbrack n\rbrack}}} + {P\; {4 \cdot {u\left\lbrack {n - 1} \right\rbrack}}} + {P\; {5 \cdot {u\left\lbrack {n - 2} \right\rbrack}}}}}\end{matrix} \right. & \begin{matrix}(3) \\(4)\end{matrix}\end{matrix}$

Here, Ds[n] represents a state value obtained in the n^(th) sampling,and Ds′[n] represents a state value after being filtered. U[n] is avalue temporarily calculated using the expression (3) for everysampling, and u[n]'s for a predetermined number of past times aretemporarily stored in the main memory 20 for use in calculation usingthe expressions (3) and (4). It should be noted that the expressionsrepresent an example of low-pass filtering using a secondary IIR(Infinite Impulse Response) filter. The use of such a filter makes itpossible to remove a noise signal without significantly sacrificing thespeed at which to respond to the change of the state value Ds relativeto the user operation.

In the above example, suppose that the plurality of parameter sets heldin the parameter set holding unit 64 a correspond to different cut-offfrequencies. In this case, frequency components in different ranges areremoved through low-pass filtering using the respective parameter sets.Specifically, when a sampling frequency 100 Hz is used to obtain a statevalue Ds, three sets of filter coefficients, respectively correspondingto the cut-off frequencies 25 Hz, 10 Hz, and 5 Hz, are held as parametersets. Then, the state value array is filtered using a parameter setselected from among the three parameter sets in response to aninstruction from the application execution unit 65, to thereby filterout a frequency component equal to or larger than the cut-off frequency.

With the above, in the entertainment system 10, when accuratesensitively relative to the operation applied to the operating device 42is not required, such as when a menu screen is shown on the monitor 26and the user is encouraged to select a menu item, application offiltering using a lower cut-off frequency enables efficient removal of anoise signal from the state value array. On the contrary, when theapplication execution unit 65 controls the motion of an object (such asa game character, a pointer, or the like) shown on the screen inresponse to a subtle operation carried out by the user with theoperating device 42, for example, filtering using a higher cut-offfrequency is applied, so that responsiveness with respect to the useroperation, and thus the user operability, can be enhanced.

It should be noted that the filtering unit 64 may filter the three statevalue arrays indicative of the accelerations for the reference axes,output from the acceleration sensor 51, using either a common parameterset or different parameter sets.

For example, the parameter set holding unit 64 a may hold parameter setscorresponding to each of a plurality of kinds of state value array so asto be associated with one parameter set number. In this case, theparameter set selection unit 64 b selects one parameter set with respectto each of the plurality of kinds of state value array according to aninstruction from the application execution unit 65, and the filteringexecution unit 64 c filters each of the plurality of kinds of statevalue array, using the selected parameter set.

With the above, for example, each of the state value arrays indicativeof the accelerations for the respective reference axes, output by theacceleration sensor 51, can be subjected to low-pass filtering usingdifferent cut-off frequencies. Therefore, in a case where it is expectedthat a noise signal will be caused with respect to a particularreference axis in a specific direction according to the content of aprocess carried out by the application execution unit 65 (for example,when the button formed on the specific surface of the operating device42 is used), the state value array relevant to that reference axis issubjected to low-pass filtering using a lower cut-off frequency, so thata noise signal can be removed under a desired condition. Also, in orderto realize a process in accordance with the operating device 42 beinginclined by the user in a particular direction, the reference axes otherthan the reference axis corresponding to that direction are subjected tolow-pass filtering using a lower cut-off frequency, so that a noisesignal can be removed without deteriorating the sensitivity to the useroperation.

The application execution unit 65 carries out a process in accordancewith the holding state of the operating device 42, using the state valueDs′, obtained through filtering by the filtering unit 64. As describedabove, by changing the condition of the filtering by the filtering unit64 according to an instruction from the application execution unit 65,the entertainment system 10 can realize filtering in accordance with thecontent of the process carried out by the application execution unit 65.This can enhance the user operability.

It should be noted that the present invention is not limited to theabove-described embodiment, and various modified embodiments areachievable.

For example, although an example is described in the above in which themain body of the entertainment system 10 functions as an operatingdevice control device for controlling a predetermined reference signalinput to the signal output unit 53, the operating device control devicemay be incorporated into the operating device 42.

When a voltage signal output by the gyro sensor 52 does not need to beamplified by the amplification circuit, or the like, the signal outputunit 53 may be realized, for example, by the main body of theentertainment system 10 by carrying out a predetermined program. Thatis, the signal output unit 53 is realized as software having a functionfor outputting a digital signal, as an output signal, in accordance withthe difference between a digital signal in accordance with the voltagesignal output by the gyro sensor 42 and a predetermined reference signal(a digital signal).

Also, although it is described in the above that calibration andfiltering are carried out based on an output value Da in accordance withan output of the acceleration sensor 51, the entertainment system 10 maycarry out calibration by the calibration unit 63 and filtering by thefiltering unit 64 based on an output value Dg in accordance with anoutput from the gyro sensor 52. In this case, the reference state maynot be a state in which the operating device 42 remains still in apredetermined posture, as described above in connection with theacceleration sensor 51, but may be a state in which the operating device42 rotates at a predetermined angular velocity. Alternatively, theentertainment system 10 may obtain an output value in accordance withthe holding state of the operating device 42, using a motion sensor, orthe like, for detecting any other posture and motion of the operatingdevice 42, and calibrate and/or filter the output value.

The filtering unit 64 may carry out a different kind of filteringprocess, and is not limited to filtering using a low-pass filter,relative to a state value array.

1. An information processing device, comprising: output value acquiringmeans for acquiring an output value in accordance with a state in whichan operating device is held; first reference value acquiring means foracquiring the output value in accordance with a predetermined firstholding state of the operating device as a first reference value; secondreference value acquiring means for acquiring the output value inaccordance with a predetermined second holding state of the operatingdevice, different from the first holding state, as a second referencevalue; and state value calculation means for calculating a state valueindicative of the state in which the operating device is held, which isin accordance with the acquired output value, based on the firstreference value and the second reference value.
 2. The informationprocessing device according to claim 1, wherein the state valuecalculation means calculates the state value such that a differencebetween a state value indicative of the first holding state and a statevalue indicative of the second holding state becomes a predeterminedvalue.
 3. The information processing device according to claim 1,further comprising third reference value acquiring means for acquiringthe output value in accordance with a predetermined third holding stateof the operating device between the first holding state and the secondholding state, as a third reference value, wherein the state valuecalculation means calculates the state value based on the thirdreference value such that a state value indicative of the third holdingstate becomes a predetermined value.
 4. The information processingdevice according to claim 1, wherein the state value calculation meanscorrects the state value such that the state value calculated isincluded in a range between a predetermined upper limit value and apredetermined lower limit value.
 5. The information processing deviceaccording to claim 1, further comprising: application execution meansfor executing an application program for carrying out a process inaccordance with the state in which the operating device is held; statevalue acquiring means for acquiring state values calculated by the statevalue calculation means every predetermined period of time as a statevalue array; parameter set holding means for holding a plurality ofparameter sets including at least one parameter for use in apredetermined filtering process; parameter set selection means forselecting one parameter set from among the plurality of held parametersets, according to an instruction from the application execution means;and filtering means for carrying out the predetermined filtering processrelative to the acquired state value array, using the selected parameterset, wherein the application execution means carries out a process usingthe state value acquired as a result of the filtering process.
 6. Aninformation processing device having application execution means forexecuting an application program for carrying out a process inaccordance with a state in which an operating device is held,comprising: state value acquiring means for acquiring state valuesindicative of the state in which the operating device is held everypredetermined period of time as a state value array; parameter setholding means for holding a plurality of parameter sets including atleast one parameter for use in a predetermined filtering process;parameter set selection means for selecting one parameter set from amongthe plurality of held parameter sets, according to an instruction fromthe application execution means; and filtering means for carrying outthe predetermined filtering process relative to the acquired state valuearray, using the selected parameter set, wherein the applicationexecution means carries out a process using the state value acquired asa result of the filtering process.
 7. The information processing deviceaccording to claim 6, wherein the predetermined filtering process is alow pass filtering process for filtering out a high frequency componentin the acquired state value array.
 8. The information processing deviceaccording to claim 7, wherein the parameter set holding means holds aplurality of parameter sets for use in the low pass filtering processfor filtering out different frequency components.
 9. The informationprocessing device according to claim 6, wherein the state valueacquiring means acquires a plurality of kinds of state value arrayaccording to a plurality of kinds of state value indicative of the statein which the operating device is held, the parameter set holding meansholds a plurality of parameter sets for each of the plurality of kindsof state value array, the parameter set selection means selects oneparameter set for each of the plurality of kinds of state value array,and the filtering means carries out the filtering process, using theparameter set selected, with respect to each of the plurality of kindsof state value array.
 10. An information processing method, comprising:a step of acquiring an output value in accordance with a state in whichan operating device is held; a step of acquiring the output value inaccordance with a predetermined first holding state of the operatingdevice as a first reference value; a step of acquiring the output valuein accordance with a predetermined second holding state of the operatingdevice, different from the first holding state, as a second referencevalue; and a step of calculating a state value indicative of the statein which the operating device is held, which is in accordance with theacquired output value, based on the first reference value and the secondreference value.
 11. A computer readable information storage mediumstoring a program for causing a computer to execute steps comprising:acquiring an output value in accordance with a state in which anoperating device is held; acquiring the output value in accordance witha predetermined first holding state of the operating device as a firstreference value; acquiring the output value in accordance with apredetermined second holding state of the operating device, differentfrom the first holding state, as a second reference value; andcalculating a state value indicative of the state in which the operatingdevice is held, which is in accordance with the acquired output value,based on the first reference value and the second reference value.